package com.lxl.demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

/**
 * 给定两个字符串 s 和 p，找到 s 中所有 p 的 异位词 的子串，返回这些子串的起始索引。不考虑答案输出的顺序。
* 输入: s = "cbaebabacd", p = "abc"
输出: [0,6]
解释:
起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。
起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。
 */

public class Demo10 {
    public List<Integer> findAnagrams(String s, String p) {
        char[] pArray = p.toCharArray();
        Arrays.sort(pArray);
        String c = new String().valueOf(pArray);
        List<Integer> list = new ArrayList<Integer>();
        HashMap<Character, Integer> map = new HashMap<>();

        char[] sArray = s.toCharArray();
        for (int i = 0; i < sArray.length - p.length()+1; i++) {
            String substring = s.substring(i, i + p.length());
            char[] charArray = substring.toCharArray();
            Arrays.sort(charArray);
            String a = new String().valueOf(charArray);
            if (a.equals(c)){
                list.add(i);
            }
        }
        return list;
    }

    public static void main(String[] args) {
        Demo10 demo10 = new Demo10();
        List<Integer> list = demo10.findAnagrams("abab", "ab");
        for(Integer i : list){
            System.out.println("i = " + i);
        }
    }
}
